Svelte kit의 API Route
Published at 2025-01-15
#svelte#sveltekit
https://velog.io/@kihyun/SvelteKit-에-대하여
개요
routes 폴더 아래에 +server.ts 파일을 만들면, 그 파일은 API Route Endpoint가 된다.
제품 내 코드에서 fetch(/api/posts) 를 호출했을 때, 그 요청은 routes/api/posts/+server.ts 으로 향하는 거다.
API Route Endpoint 파일 내부에선 각 메서드에 대응하는 함수를 export 할 수 있다.
method 별로 실행될 함수를 분리하여 유지 및 관리가 직관적이며 쉬워진다.
그리고 Endpoint 파일 내의 함수는 모두 Server-Side 에서 실행된다는 모양이다. 이 부분은 확인이 필요하다.
예시코드
import * as db from '$lib/database';
export async function get() {
const items = await db.list();
return {
body: { items }
};
}
export async function post({ request }) {
const [errors, item] = await db.create(request);
if (errors) {
// return validation errors
return {
status: 400,
body: { errors }
};
}
// redirect to the newly created item
return {
status: 303,
headers: {
location: `/items/${item.id}`
}
};
}